﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Chilis.Marketing.Common
{
    public class Constantes
    {
        public static int idValorNulo = 0;
        public static int idValorActivo = 1;

        /// <summary>
        /// Enumerados para las Acciones configuradas
        /// </summary>
        public enum ACCION
        {
            /// <summary>
            /// ACCIÓN = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// ACCIÓN = NUEVO
            /// </summary>
            VER = 1,
            /// <summary>
            /// ACCIÓN = NUEVO
            /// </summary>
            NUEVO = 2,
            /// <summary>
            /// ACCIÓN = MODIFICAR
            /// </summary>
            MODIFICAR = 3,
            /// <summary>
            /// ACCIÓN = ELIMINAR
            /// </summary>
            ELIMINAR = 4,
            /// <summary>
            /// ACCIÓN = ASOCIAR
            /// </summary>
            ASOCIAR = 5,
            /// <summary>
            /// ACCIÓN = APROBAR
            /// </summary>
            APROBAR = 6,
            /// <summary>
            /// ACCIÓN = GENERAR_REPORTE
            /// </summary>
            GENERAR_REPORTE = 7,
            /// <summary>
            /// ACCIÓN = AGREGAR_ITEM
            /// </summary>
            AGREGAR_ITEM = 8,
            /// <summary>
            /// ACCIÓN = ANULAR
            /// </summary>
            ANULAR = 9,
            /// <summary>
            /// ACCIÓN = ASIGNAR_ARTE
            /// </summary>
            ASIGNAR_ARTE = 10
        }

        public static ACCION ObtenerEnumAccion(string sAccion)
        {
            ACCION accion = ACCION.NINGUNO;
            accion = ControlEnumerados<ACCION>.ObtenerValEnumerado(accion, sAccion);
            return accion;
        }

        /// <summary>
        /// Claves para el Campo de Ordenamiento
        /// </summary>
        public enum ORDENAR_POR
        {
            /// <summary>
            /// CAMPO = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// CAMPO = CODIGO
            /// </summary>
            CODIGO = 1,
            /// <summary>
            /// CAMPO = DESCRIPCION
            /// </summary>
            DESCRIPCION = 2,
            /// <summary>
            /// CAMPO = ESTADO
            /// </summary>
            ESTADO = 3,
            /// <summary>
            /// CAMPO = FECHA REGISTRO
            /// </summary>
            FECHA_REGISTRO = 4,
        }

        /// <summary>
        /// Claves para la Forma de Ordenamiento
        /// </summary>
        public enum DE_FORMA
        {
            /// <summary>
            /// ORDENAR = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// ORDENAR = ASCENDENTE
            /// </summary>
            ASCENDENTE = 1,
            /// <summary>
            /// ORDENAR = DESCENTENTE
            /// </summary>
            DESCENTENTE = 2
        }

        /// <summary>
        /// Enumerados para poblar las Unidades
        /// </summary>
        public enum UNIDAD_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }

        /// <summary>
        /// Enumerados para poblar los Cargos
        /// </summary>
        public enum CARGO_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }


        /// <summary>
        /// Enumerados para poblar los Materiales
        /// </summary>
        public enum MATERIAL_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }

        /// <summary>
        /// Enumerados para poblar las Campanhas
        /// </summary>
        public enum CAMPANHA_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0,
            DATOS_ACTIVIDADES = 1,
            DATOS_ARTE = 2,
            DATOS_PRUEBA_PILOTO = 3
        }

        /// <summary>
        /// Enumerados para poblar las Actividades
        /// </summary>
        public enum ACTIVIDAD_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0,
            RECURSO = 1
        }

        /// <summary>
        /// Enumerados para poblar los Roles
        /// </summary>
        public enum ROL_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }

        /// <summary>
        /// Enumerados para poblar Arte
        /// </summary>
        public enum ARTE_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }

        /// <summary>
        /// Enumerados para poblar Prueba Piloto
        /// </summary>
        public enum PRUEBA_PILOTO_DATOS
        {
            NINGUNO = -1,
            DATOS_GENERALES = 0
        }

        /// <summary>
        /// Enumerados para manejar los Estados de los objetos
        /// </summary>
        public enum ESTADO
        { 
            NINGUNO = -1,
            ACTIVO = 1,
            INACTIVO = 0
        }

        public static ESTADO ObtenerEnumEstado(string sEstado)
        {
            ESTADO estado = ESTADO.NINGUNO;
            estado = ControlEnumerados<ESTADO>.ObtenerValEnumerado(estado, sEstado);
            return estado;
        }

        /// <summary>
        /// Enumerados para las Campañas configuradas
        /// </summary>
        public enum ESTADO_CAMPANHA
        {
            /// <summary>
            /// ESTADO_CAMPANHA = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// ESTADO_CAMPANHA = REGISTRADO
            /// </summary>
            REGISTRADO = 1,
            /// <summary>
            /// ESTADO_CAMPANHA = EN_PLANIFICACION
            /// </summary>
            EN_PLANIFICACION = 2,
            /// <summary>
            /// ESTADO_CAMPANHA = EN_EVALUACION
            /// </summary>
            EN_EVALUACION = 3,
            /// <summary>
            /// ESTADO_CAMPANHA = PENDIENTE
            /// </summary>
            PENDIENTE = 4,
            /// <summary>
            /// ESTADO_CAMPANHA = APROBADO
            /// </summary>
            APROBADO = 5,
            /// <summary>
            /// ESTADO_CAMPANHA = ANULADO
            /// </summary>
            ANULADO = 6
        }

        public static ESTADO_CAMPANHA ObtenerEnumEstadoCampanha(string sEstadoCampanha)
        {
            ESTADO_CAMPANHA estadoCampanha = ESTADO_CAMPANHA.NINGUNO;
            estadoCampanha = ControlEnumerados<ESTADO_CAMPANHA>.ObtenerValEnumerado(estadoCampanha, sEstadoCampanha);
            return estadoCampanha;
        }

        /// <summary>
        /// Enumerados para las Actividades configuradas
        /// </summary>
        public enum ESTADO_ACTIVIDAD
        {
            /// <summary>
            /// ESTADO_ACTIVIDAD = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// ESTADO_ACTIVIDAD = REGISTRADO
            /// </summary>
            REGISTRADO = 1,
            /// <summary>
            /// ESTADO_ACTIVIDAD = EN_PLANIFICACION
            /// </summary>
            EN_PLANIFICACION = 2,
            /// <summary>
            /// ESTADO_ACTIVIDAD = EN_EVALUACION
            /// </summary>
            EN_EVALUACION = 3,
            /// <summary>
            /// ESTADO_ACTIVIDAD = PENDIENTE
            /// </summary>
            PENDIENTE = 4,
            /// <summary>
            /// ESTADO_ACTIVIDAD = APROBADO
            /// </summary>
            APROBADO = 5,
            /// <summary>
            /// ESTADO_ACTIVIDAD = ANULADO
            /// </summary>
            ANULADO = 6
        }

        public static ESTADO_ACTIVIDAD ObtenerEnumEstadoActividad(string sEstadoActividad)
        {
            ESTADO_ACTIVIDAD estadoActividad = ESTADO_ACTIVIDAD.NINGUNO;
            estadoActividad = ControlEnumerados<ESTADO_ACTIVIDAD>.ObtenerValEnumerado(estadoActividad, sEstadoActividad);
            return estadoActividad;
        }


        /// <summary>
        /// Enumerados para el Estado de Arte configuradas
        /// </summary>
        public enum ESTADO_ARTE
        {
            /// <summary>
            /// ESTADO_ARTE = NINGUNO
            /// </summary>
            NINGUNO = -1,
            /// <summary>
            /// ESTADO_ARTE = NO APROBADO
            /// </summary>
            NO_APROBADO = 0,
            /// <summary>
            /// ESTADO_ARTE = APROBADO
            /// </summary>
            APROBADO = 1,
        }

        public static ESTADO_ARTE ObtenerEnumEstadoArte(string sEstadoArte)
        {
            ESTADO_ARTE estadoArte = ESTADO_ARTE.NINGUNO;
            estadoArte = ControlEnumerados<ESTADO_ARTE>.ObtenerValEnumerado(estadoArte, sEstadoArte);
            return estadoArte;
        }

        /// <summary>
        /// Enumerados para las Prueba Piloto configuradas
        /// </summary>
        public enum ESTADO_PRUEBA_PILOTO
        {
            /// <summary>
            /// ESTADO_CAMPANHA = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// ESTADO_CAMPANHA = ASIGNADO
            /// </summary>
            ASIGNADO = 1,
            /// <summary>
            /// ESTADO_CAMPANHA = EN_PROCESO
            /// </summary>
            EN_PROCESO = 2,
            /// <summary>
            /// ESTADO_CAMPANHA = TERMINADO
            /// </summary>
            TERMINADO = 3,
            /// <summary>
            /// ESTADO_CAMPANHA = APROBADO
            /// </summary>
            APROBADO = 4,
            /// <summary>
            /// ESTADO_CAMPANHA = ANULADO
            /// </summary>
            ANULADO = 5
        }

        public static ESTADO_PRUEBA_PILOTO ObtenerEnumEstadoPruebaPiloto(string sEstadoPruebaPiloto)
        {
            ESTADO_PRUEBA_PILOTO estadoPruebaPiloto = ESTADO_PRUEBA_PILOTO.NINGUNO;
            estadoPruebaPiloto = ControlEnumerados<ESTADO_PRUEBA_PILOTO>.ObtenerValEnumerado(estadoPruebaPiloto, sEstadoPruebaPiloto);
            return estadoPruebaPiloto;
        }

        public static bool CAMPANHA_MostrarFechaReales(string tipoAccion)
        {
            bool muestra = false;
            ACCION oAccion = ObtenerEnumAccion(tipoAccion);
            switch (oAccion)
            {
                case ACCION.NINGUNO:
                    break;
                case ACCION.VER:
                    break;
                case ACCION.NUEVO:
                    break;
                case ACCION.MODIFICAR:
                    break;
                case ACCION.ELIMINAR:
                    break;
                case ACCION.ASOCIAR:
                    break;
                case ACCION.APROBAR:
                    muestra = true;
                    break;
                case ACCION.GENERAR_REPORTE:
                    break;
                case ACCION.AGREGAR_ITEM:
                    break;
                case ACCION.ANULAR:
                    break;
                default:
                    break;
            }
            return muestra;
        }

        public static bool CAMPANHA_MostrarAsociarActividades(string tipoAccion)
        {
            bool muestra = false;
            ACCION oAccion = ObtenerEnumAccion(tipoAccion);
            switch (oAccion)
            {
                case ACCION.NINGUNO:
                    break;
                case ACCION.VER:
                    break;
                case ACCION.NUEVO:
                    break;
                case ACCION.MODIFICAR:
                    break;
                case ACCION.ELIMINAR:
                    break;
                case ACCION.ASOCIAR:
                    muestra = true;
                    break;
                case ACCION.APROBAR:
                    muestra = true;
                    break;
                case ACCION.GENERAR_REPORTE:
                    break;
                case ACCION.AGREGAR_ITEM:
                    break;
                case ACCION.ANULAR:
                    break;
                default:
                    break;
            }
            return muestra;
        }

        public static bool CAMPANHA_MostrarBotoneraGeneral(string tipoAccion)
        {
            bool muestra = false;
            ACCION oAccion = ObtenerEnumAccion(tipoAccion);
            switch (oAccion)
            {
                case ACCION.NINGUNO:
                    break;
                case ACCION.VER:
                    muestra = true;
                    break;
                case ACCION.NUEVO:
                    muestra = true;
                    break;
                case ACCION.MODIFICAR:
                    muestra = true;
                    break;
                case ACCION.ELIMINAR:
                    muestra = true;
                    break;
                case ACCION.ASOCIAR:
                    muestra = true;
                    break;
                case ACCION.APROBAR:
                    muestra = true;
                    break;
                case ACCION.GENERAR_REPORTE:
                    break;
                case ACCION.AGREGAR_ITEM:
                    break;
                case ACCION.ANULAR:
                    break;
                default:
                    break;
            }
            return muestra;
        }

        public static bool RECURSOMATERIAL_MostrarFiltro(string tipoAccion)
        {
            bool muestra = false;
            ACCION oAccion = ObtenerEnumAccion(tipoAccion);
            switch (oAccion)
            {
                case ACCION.NINGUNO:
                    break;
                case ACCION.VER:
                    break;
                case ACCION.NUEVO:
                    muestra = true;
                    break;
                case ACCION.MODIFICAR:
                    break;
                case ACCION.ELIMINAR:
                    break;
                case ACCION.ASOCIAR:
                    break;
                case ACCION.APROBAR:
                    break;
                case ACCION.GENERAR_REPORTE:
                    break;
                case ACCION.AGREGAR_ITEM:
                    break;
                case ACCION.ANULAR:
                    break;
                default:
                    break;
            }
            return muestra;
        }

        public static bool ACTIVIDAD_MostrarFechaReales(string tipoAccion)
        {
            bool muestra = false;
            //ACCION oAccion = ObtenerEnumAccion(tipoAccion);
            //switch (oAccion)
            //{
            //    case ACCION.NINGUNO:
            //        break;
            //    case ACCION.VER:
            //        break;
            //    case ACCION.NUEVO:
            //        break;
            //    case ACCION.MODIFICAR:
            //        break;
            //    case ACCION.ELIMINAR:
            //        break;
            //    case ACCION.ASOCIAR:
            //        muestra = true;
            //        break;
            //    case ACCION.APROBAR:
            //        muestra = true;
            //        break;
            //    case ACCION.GENERAR_REPORTE:
            //        break;
            //    case ACCION.AGREGAR_ITEM:
            //        break;
            //    case ACCION.ANULAR:
            //        break;
            //    default:
            //        break;
            //}
            return muestra;
        }

        /// <summary>
        /// Claves para la Forma de Ordenamiento
        /// </summary>
        public enum RECURSO_TRABAJADOR_RESULTADO_AGREGAR
        {
            /// <summary>
            /// RECURSO_TRABAJADOR_AGREGAR = NINGUNO
            /// </summary>
            NINGUNO = 0,
            /// <summary>
            /// RECURSO_TRABAJADOR_AGREGAR = EXITOSO
            /// </summary>
            EXITOSO = 1,
            /// <summary>
            /// RECURSO_TRABAJADOR_AGREGAR = NO_PERMITIDO
            /// </summary>
            NO_PERMITIDO = 2
        }

    }
}
